Qiskit 소개
이 노트북에서는 Qiskit으로 양자 Gate와 양자 Circuit을 프로그래밍하는 방법, 그리고 Qiskit 패턴을 사용하여 시뮬레이터와 실제 양자 컴퓨터에서 실행하는 방법을 살펴봅니다. 이후에는 정보를 인코딩하는 다양한 방법을 소개하고, 마지막으로 양자 텔레포테이션 보너스 예제를 다룹니다.
시작하기 전에
설치 및 설정 안내를 아직 따르지 않았다면 지금 따라 주세요. IBM Quantum™ 플랫폼 사용 설정 단계도 포함됩니다.
양자 컴퓨터와 상호작용하려면 Jupyter 개발 환경을 사용하는 것을 권장합니다. 권장 시각화 지원('qiskit[visualization]')도 함께 설치하세요. 이 예제의 두 번째 부분에는 matplotlib 패키지도 필요합니다.
양자 컴퓨팅 일반에 대해 배우고 싶다면 IBM Quantum Learning의 양자 정보 기초 과정을 방문하세요.
임포트
# Added by doQumentation — required packages for this notebook
!pip install -q matplotlib numpy qiskit qiskit-aer qiskit-ibm-runtime
# Import necessary modules for this notebook
import time
import qiskit
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector
from qiskit.visualization import plot_bloch_multivector, plot_state_qsphere
from qiskit_aer import AerSimulator
from qiskit.quantum_info import SparsePauliOp
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime import EstimatorV2 as Estimator
from qiskit_ibm_runtime import SamplerV2 as Sampler
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit.visualization import plot_histogram
print(qiskit.__version__)
2.3.1
하드웨어에서 양자 Circuit을 실행하려면 먼저 계정을 설정해야 합니다. 다음과 같이 진행하세요:
- 업그레이드된 IBM Quantum® 플랫폼으로 이동하세요.
- 위 그림과 같이 오른 쪽 상단 모서리로 이동하여 API 토큰을 생성하고 안전한 위치에 복사하세요.
- 다음 셀에서
deleteThisAndPasteYourAPIKeyHere를 여러분의 API 키로 교체하세요. - 위 그림과 같이 왼쪽 하단 모서리로 이동하여 인스턴스를 생성하세요. 반드시 오픈 플랜을 선택하세요.
- 인스턴스가 생성되면 연관된 CRN 코드를 복사하세요. 인스턴스가 보이지 않으면 새로고침이 필요할 수 있습니다.
- 아래 셀에서
deleteThisAndPasteYourCRNHere를 여러분의 CRN 코드로 교체하세요.
IBM Cloud® 계정 설정 방법에 대한 자세한 내용은 이 가이드를 참조하세요.
⚠️ 참고: API 키는 보안 비밀번호처럼 안전하게 취급하세요. 안전한 환경과 신뢰할 수 없는 환경 모두에서 API 키를 사용하는 방법에 대한 자세한 내용은 Cloud 설정 가이드를 참조하세요.
#your_api_key = "deleteThisAndPasteYourAPIKeyHere"
#your_crn = "deleteThisAndPasteYourCRNHere"
QiskitRuntimeService.save_account(
channel="ibm_quantum_platform",
token=your_api_key,
instance=your_crn,
overwrite=True
)
1. 양자 Gate와 양자 Circuit
양자 Circuit은 양자 계산 모델로, 계산이 일련의 양자 Gate로 구성됩니다. 몇 가지 인기 있는 양자 Gate를 살펴보겠습니다.
X Gate
X Gate는 블로흐 구(Bloch sphere)의 X축을 중심으로 라디안 회전하는 것과 같습니다. 을 로, 을 으로 매핑합니다. 고전 컴퓨터의 NOT Gate와 동일한 양자 연산으로, 비트 플립(bit-flip)이라고도 합니다.
# Let's apply an X-gate on a |0> qubit
qc = QuantumCircuit(1)
qc.x(0)
qc.draw(output='mpl')
# Let's see Bloch sphere visualization
sv = Statevector(qc)
plot_bloch_multivector(sv)
